﻿
function avir_logs( block_id ) {
    this.vdiv = block_id;
    this.is = false;
}

avir_logs.prototype.show = function() 
{ 
    var a = this;
    if( !a.is ) { a.create(); a.is = true; } 
    else $('#gbox_'+a.vdiv).show();
};

avir_logs.prototype.hide = function() 
{ 
    $('#gbox_'+this.vdiv).hide(); 
};
    
avir_logs.prototype.create = function() 
{
var vdiv = this.vdiv;
var pager = $('#'+vdiv+'Pager');
var avtab;
var col_order = [0,1,2,3,4];
var col_names = ['ID','Время','Отправитель','ID сообщения','Причина'];
var col_model = [
		{name:'id', index:'rec_id', hidden: false, width:80, editable: false, fixed: true },
		{name:'tmstamp', index:'tmstamp', hidden: false, width:130, editable: false },
		{name:'mfrom', index:'mfrom', hidden: false, width:250, editable: false },
		{name:'msgid', index:'msgid', hidden: false, width:250, editable: false },
		{name:'status', index:'status', hidden: false, width:300, editable: false }
    ];

var jqgo = {
	url:'bw/av-get.php',
	datatype: 'json',
    emptyrecords: true,
	autowidth: false,
	scrollOffset: 22,
	gridview: true,
    hidegrid: false,
	hoverrows: true,
	recordpos: 'right',
	scrollrows: true,
	viewrecords: true,
	mtype: 'GET',
    width: 999,
    shrinkToFit: false,
	colNames: col_names,
	colModel: col_model,
    page: 1,
	pager: pager,
    loadui: 'disable',
    filterbar: false,
    footerrow: false,
	height: 596,
	rowNum:26,
	rowList:[25,26,27,100,500],
	sortname: 'rec_id',
	sortorder: 'asc',
	sortable: true,
	caption: 'Таблица событий Антивирусной защиты',
    loadError: function() { 
            ipdepo.go('index.php'); 
        },
    loadComplete: function(data) {
// Browser related hook
            if( $.browser.msie || $.browser.webkit ) {
                $('#'+vdiv+' tr.jqgrow td').height(21);
            }
            if( data.userdata && data.userdata.errcode != 0 ) {
                if( data.userdata.errcode == 999 ) {
                        alert( data.userdata.errmess );
                        ipdepo.go('index.php');
                }
                else
                    ipdepo.alert('AlertDlg', 'Ошибка', data.userdata.errmess, 'ipdepo-icon-stop32');
            }
        },
	onPaging: function( pgButton ) {},  
	onSelectAll: function(ids, status) {},
	onSelectRow: function(id, status){},

	ondblClickRow: function(id, irow){}
};
// End of jqGrid construct

$.jqm.params.overlay = 1;

// Восстановим настройки
RestTabSetings();

// Создадим jqGrid
avtab = $('#'+vdiv).jqGrid( jqgo );

// Восстановим порядок столбцов
avtab.remapColumns(col_order, true, false );

// Навигатор - обновить
avtab.jqGrid('navGrid', '#'+vdiv+'Pager', {
	add: false, del: false, edit: false, search: false,
    view: true,
//    viewtext: 'Просмотр',
    viewtitle: 'Развернутый просмотр записи',
//	refreshtext:'Обновить',
	afterRefresh: function() {
			avtab.resetSelection();
		}
	}, {}, {}, {}, {}, {width: 600}
);

// Пользовательский навигатор - выбор столбцов
avtab.jqGrid('navButtonAdd','#'+vdiv+'Pager',{
    caption: '',
//    caption: 'Столбцы',
    title: 'Выбор отображаемых столбцов',
    buttonicon: 'ui-icon-calculator',
    onClickButton: function(){
            avtab.setColumns({
                width: 250,
                modal: true,
                jqModal: true,
                closeOnEscape: true,
                colnameview: false,
                updateAfterCheck: true
            });
    }
});
     
// Пользовательский навигатор - вкл/выкл. тулбар фильтра
avtab.jqGrid('navButtonAdd','#'+vdiv+'Pager',{
//    caption: 'Фильтр',
    caption: '',
    title: 'Включить тулбар фильтра',
    buttonicon: 'ui-icon-search',
    onClickButton: function() { 
        avtab.setGridParam({filterbar:!avtab.getGridParam('filterbar')});
		avtab[0].toggleToolbar();
	}
});
     
// Пользовательский навигатор - сохранить настройки отобр.таблицы
avtab.jqGrid('navButtonAdd','#'+vdiv+'Pager',{
//    caption: 'Сохранить',
    caption: '',
    title: 'Сохранить настройки таблицы',
    buttonicon: 'ui-icon-disk',
    onClickButton: SaveTabSetings
//    onClickButton: function() {}
});

function SaveTabSetings(){
var grp = avtab.getGridParam();
var co = new Array();
var cw = new Array();
var ch = new Array();
var ce = new Array();

for( k=0; k<col_model.length; k++ ) {
    for( i=0; i<grp.colModel.length; i++ ) {
        if( col_model[k].name == grp.colModel[i].name ) {
            co[i] = k;
            cw[k] = grp.colModel[i].width;
            ch[k] = grp.colModel[i].hidden;
            ce[k] = grp.colModel[i].editable;
            break;
        }
    }
}

var dataset = {
    oper:       "saveset",
    sortname:   grp.sortname,
    sortorder:  grp.sortorder,
    rownum:     grp.rowNum,
    page:       grp.page,
    filterbar:  grp.filterbar,
    colorder:   co,
    colwidth:   cw,
    colhidden:  ch,
    coledit:    ce
};

                          
    $.post('bw/av-saveset.php', dataset, function( rsp, textStatus)
    {
        if( rsp.errcode ) {
            if( rsp.errcode == '999' ) {
                alert( "Ваша сессия закончилась по таймауту.\nПожалуйста перерегистрируйтесь." );
                ipdepo.go('login.php');
            }
            else
                ipdepo.alert('AlertDlg', 'Ошибка', rsp.errmess, 'ipdepo-icon-stop32');
        }
        else
            ipdepo.alert('AlertDlg', 'Сообщение', rsp.errmess, 'ipdepo-icon-info32');
    }, 'json');
}     

function RestTabSetings(){
var dataset = { oper: "restset" };
    $.ajaxSetup({async: false });
    
    $.post('bw/av-restset.php', dataset, function( rsp, textStatus)
    {
        $.ajaxSetup({async: true });

        if( rsp.errcode ) {
            return false;
        }

        if( $.isPlainObject(rsp.data) ) {
            if(rsp.data.sortname)
                jqgo.sortname = rsp.data.sortname;
            if(rsp.data.sortorder)
                jqgo.sortorder = rsp.data.sortorder;
            if(rsp.data.rownum)
                jqgo.rowNum = rsp.data.rownum;
            if(rsp.data.page)
                jqgo.page = rsp.data.page;
            if(rsp.data.filterbar)
                jqgo.filterbar = rsp.data.filterbar;
            
            for( i=0; i<rsp.data.colwidth.length; i++ )
                jqgo.colModel[i].width = rsp.data.colwidth[i];
            for( i=0; i<rsp.data.colhidden.length; i++ )
                jqgo.colModel[i].hidden = rsp.data.colhidden[i];
            for( i=0; i<rsp.data.coledit.length; i++ )
                jqgo.colModel[i].editable = rsp.data.coledit[i];
            for( i=0; i<rsp.data.colorder.length; i++ )
                col_order[i] = rsp.data.colorder[i];
        }
        rest_done = true;
    }, 'json');   
}     

// Создадим InlineSearch

avtab.filterToolbar({
	afterSearch:function() {}
});

if( !avtab.getGridParam('filterbar') )
 avtab[0].toggleToolbar();

};  // End of create function definition
